<?php

class loja_produtoModel extends Model{
    
    protected $tabela = "loja_produto";
    protected $pkey   = "cod_produto";
    protected $dados = array(
        
        'cod_produto' => array(
            'name'    => "Código do produto",
            'pkey'    => true,
            'ai'      => true,
            'type'    => 'int',
            'size'    => '11',
            'grid'    => true,
            'notnull' => true
         ),
        
        'pnome' => array(
            'name'    => 'Nome',
            'type'    => 'varchar',
            'size'    => '50', 
            'unique'  => array('model' => 'loja/produto'),
            //'search'  => true,
            'grid'    => true,
            'notnull' => true
       	),
       	
        'preco' => array(
            'name'     => 'Preço',
            'type'     => 'float',
            'size'     => '(20,2)',
            'notnull'  => true,
            'grid'     => true,
            'especial' => 'monetary'
         ),
        
        'descricao' => array(
            'name'    => 'Descricao',
            'type'    => 'text',
            //'search'  => true,
            'especial'=> 'editor',
            'notnull' => true
        ),
        
        'estoque' => array(
            'name'    => 'Estoque',
            'type'    => 'int',
            'size'     => '11',
            'grid'    => true,
            'notnull' => true
         ),
        
        'fimestoque' => array(
            'name'      => 'Ao acabar o estoque',
            'type'      => 'enum',
            'default'   => 'disp',
            'options'   => array(
                'disp' => 'Disponível',
                'pre'  => 'Pré-venda',
                'ind'  => 'Indisponível',
                'esc'  => 'Esconder produto',
            ),
            'notnull'   => true
       	 ),
        
        'destaque' => array(
            'name'      => 'Destaque',
            'type'      => 'enum',
            'default'   => 'n',
            'options'   => array(
                's' => 'Sim',
                'n' => 'Não'
            ),
            'notnull'   => true
       	 ),
        
        'comprimento' => array(
            'name'    => 'Comprimento',
            'type'    => 'int',
            'size'     => '20',
            'notnull' => true
         ),
         
        'largura'     => array(
            'name'    => 'Largura',
            'type'    => 'int',
            'size'     => '20',
            'notnull' => true
         ),
         
        'altura'      => array(
            'name'    => 'Altura',
            'type'    => 'int' ,
            'size'     => '20',
            'notnull' => true
        ),
        
        'peso' => array(
            'name'    => 'Peso',
            'type'    => 'int',
            'size'    => '20',
            'notnull' => true
         ),
        
        'cod_categoria' => array(
            'name'      => 'Categorias',
            'type' 	=> 'int',
            'fkey'      => array(
                'model' 	=> 'loja/Config/produto_categoria', 
                'keys'          => array('cod_produto', 'catnome'),
                'cardinalidade' => 'nn'//nn 1n 11
            )
         ),
        
        'prel' => array(
            'name'      => 'Produtos Relacionados',
            'type' 	=> 'int',
            'fkey'      => array(
                'model' 	=> 'loja/Config/produto_relacionado', 
                'keys'          => array('cod_prod1', 'pnome'),
                'cardinalidade' => 'nn'//nn 1n 11
            )
         ),
        
        'album' => array(
            'name'      => 'Fotos',
            'type' 	=> 'int',
            'notnull'   => true, 
            'fkey'      => array(
                'model' 	=> 'galeria/album', 
                'keys'          => array('cod_album', 'cod_album'),
                'cardinalidade' => '11'//nn 1n 11
            )
         ),
        
        'caracteristicas' => array(
            'name'      => 'Características',
            'legend'    => 'Características',
            'fkey'      => array(
                'model' 	=> 'loja/Config/produto_caracteristica',
                'keys'          => array('cod_produto', 'caracteristica'),
                'cardinalidade' => 'n1'//nn 1n 11
            )
         )
    );
    
    private $campos = array('cod_produto', "pnome", "preco", "ext", "url", 'album');
    
    public function getDestaques($limit = 5, $offset = 0){
        $where  = "destaque = 's'";
        $this->LoadModel("galeria/album", "galbum");
        $this->galbum->JoinAlbum($this->tabela, "album");
        return $this->selecionar($this->campos, $where, $limit, $offset, "$this->pkey DESC");
    }
    
    public function getProdutos($limit = 5, $offset = 0){
        $this->LoadModel("galeria/album", "galbum");
        $this->galbum->JoinAlbum($this->tabela, "album");
        $where  = "destaque = 'n'";
        return $this->selecionar($this->campos, $where, $limit, $offset, "$this->pkey DESC");
    }
    
    public function getListaProdutos($lista, $limit = 5, $offset = 0, $destaque = false){
        $this->LoadModel("galeria/album", "galbum");
        $this->galbum->JoinAlbum($this->tabela, "album");
        $or = $where = "";
        $conc = ($destaque)?" AND `destaque`='s' ":"AND `destaque`='n'";
        foreach($lista as $cod_produto){
            $where .= " $or cod_produto = '$cod_produto' ";
            $or     = " OR ";
        }
        return $this->selecionar($this->campos, $where, $limit, $offset, "$this->pkey DESC");
    }
    
    public function registraRelacao($cod_produto){
        if($cod_produto == "") return;
        
        if(cookie::cookieExists('loja_prod_rel')){
            $cod_prod2 = cookie::getVar("loja_prod_rel");
            $this->LoadModel("loja/produto/prel", 'pobj');
            $this->pobj->inserirBySystem($cod_produto, $cod_prod2);
        }
        cookie::setVar("loja_prod_rel", $cod_produto);
    }
    
}

?>